package com.newlink.building.userinfo.mvp.contract

import com.newlink.building.common_base.base.IModel
import com.newlink.building.common_base.base.IPresenter
import com.newlink.building.common_base.base.IView
import com.newlink.building.common_base.model.bean.FlsMessageData
import com.newlink.building.common_base.model.bean.FlsMessageListData
import com.newlink.building.common_base.model.bean.HttpResult
import com.newlink.building.common_base.model.bean.ResponseTopData
import io.reactivex.Observable

/**
 * @Author: Jake
 * @Date: 2023-12-11
 * @Description:
 */
interface Module_UserInfo_FlsMsgContract {
    interface Model : IModel {
        fun deleteAllFlsMessageList(
            token: String,
            userId: String
        ): Observable<HttpResult<ResponseTopData>>

        fun getFlsMessageList(
            token: String,
            userId: String,
            page: Int,
            limit: Int
        ): Observable<HttpResult<FlsMessageListData>>
    }

    interface View : IView {
        fun getFlsMessageListSuccess(list: MutableList<FlsMessageData>)
        fun getFlsMessageListFail()

        fun deleteAllMessageListSuccess()
        fun deleteAllMessageListFail()
    }

    interface Presenter : IPresenter<View> {
        fun deleteAllFlsMessageList(token: String, userId: String)
        fun getFlsMessageList(token: String, userId: String, page: Int, limit: Int)
    }
}